﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace WindowsGame1
{
    public class Personagem : Objeto2D
    {

        KeyboardState teclado;
        MouseState mouse;

        

        
        

        public Personagem(Texture2D textura) :
            base(textura)
        {
            
        }

        public void Update()
        {

            //movimento teclado

            teclado = Keyboard.GetState();
            mouse = Mouse.GetState();

            this.posicao += this.velocidade;

            bool teclaFoiPrecionadaHorizontal = false;
            bool teclaFoiPrecionadaVertical = false;
            //this.posicao.X += 1; // faz andar sozinho

            // para so andar, mude para posicao =2
            if (teclado.IsKeyDown(Keys.Right))
            {
                this.velocidade.X += 0.2f;
                teclaFoiPrecionadaHorizontal = true;
                teclaFoiPrecionadaVertical = true;
            }

            else if (teclado.IsKeyDown(Keys.Left))
            {
                this.velocidade.X -= 0.2f;
                teclaFoiPrecionadaHorizontal = true;
                teclaFoiPrecionadaVertical = true;
            }

            else if (teclado.IsKeyDown(Keys.Up))
            {
                this.velocidade.Y -= 0.2f;
                teclaFoiPrecionadaHorizontal = true;
                teclaFoiPrecionadaVertical = true;
            }

            else if (teclado.IsKeyDown(Keys.Down))
            {
                this.velocidade.Y += 0.2f;
                teclaFoiPrecionadaHorizontal = true;
                teclaFoiPrecionadaVertical = true;
            }

      
            if (teclaFoiPrecionadaHorizontal == false)
            {
                this.velocidade.X = MathHelper.Lerp(this.velocidade.X, 0, 0.1f);    // faz a velocidade cair

            }

            if (teclaFoiPrecionadaVertical == false)
            {
                // faz a velocidade cair
                this.velocidade.Y = MathHelper.Lerp(this.velocidade.Y, 0, 0.1f);
            }

            if (mouse.LeftButton == ButtonState.Pressed)
            {
                TiroManager.CriarTiro(this.posicao);
            }



        }


        
        public override void Draw(SpriteBatch spriteBatch)
        {
    


            base.Draw(spriteBatch);


        }
    
    
    }
}

